#include "stm32f10x.h"
#include "usart1.h"
#include "spi_nrf.h"
#include "SysTick.h"
#include "adc.h"
#include "beep.h"
#include "TiMbase.h" 

u8 rxbuf1[2] = {0,0};	           //从机1接收缓冲 空气湿度+土壤湿度等级
u8 rxbuf2[2] = {0,0};   				//从机2接收缓冲 空气湿度+土壤湿度等级
u8 txbuf;                         //主机向继电器发送数据
u8 Rank[2];      				  //平均空气湿度与土壤湿度等级  

void HMISends(char *buf1);
void HMISendb(u8 buf);
char  buf[64];

void HMISendstart(void)
	{
	 	Delay_ms(200);
		HMISendb(0xff);
		Delay_ms(200);
	}

int main(void)
{    
	u8 status = 0;        //状态标志
	uart_init(9600);      //uart初始化
	SysTick_Init();     	/*配置Systick为1us中断一次*/	
	SPI_NRF_Init();       /*SPI接口初始化*/   
	ADC1_Init();          //ADC初始化
	HMISendstart();       //为确保串口HMI正常通信

	TIM2_Configuration();             //定时器2初始化，产生10ms中断
	TIM2_NVIC_Configuration();        //TIM2中断优先级配置

	printf("\r\n 这是无线传输 主机端的反馈信息\r\n");
	printf("\r\n   正在检测NRF与MCU是否正常连接。。。\r\n"); 

	status = NRF_Check();   		  /*检测NRF模块与MCU的连接*/
	while(status)
	{
		printf("\r\n NRF与MCU连接失败\r\n");
	}   
	printf("\r\n NRF与MCU连接成功\r\n");  
	   
	while(1)
	{  	 
/******************************串口HMI通信********************************************/			
		sprintf(buf,"t2.txt=\"%d\"",Rank[0]);
		HMISends(buf);
		HMISendb(0xff);	
		sprintf(buf,"t4.txt=\"%d\"",Rank[1]);
		HMISends(buf);
		HMISendb(0xff);		
		if(Rank[1] <= 3)
		{
				HMISends("t5.txt=\"土壤湿度过低！\"");
				HMISendb(0xff);
		}
		else if(Rank[1] >= 8)
		{
				HMISends("t5.txt=\"土壤湿度过高！\"");
				HMISendb(0xff);
		}
		else
		{
				HMISends("t5.txt=\"土壤湿度适宜！\"");
				HMISendb(0xff);
		}
	}		
} 

void HMISends(char *buf1)		  //字符串发送函数
{
	u8 i=0;
	while(1)
	{
		if(buf1[i]!=0)
			{
				USART_SendData(USART1,buf1[i]);  //发送一个字节
				while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待发送结束
				i++;
			}
		else 
		return ;
	}
}
void HMISendb(u8 k)		         //字节发送函数
{		 
	u8 i;
	 for(i=0;i<3;i++)
	 {
	 if(k!=0)
	 	{
			USART_SendData(USART1,k);  //发送一个字节
			while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待发送结束
		}
	 else 
	 return ;

	 } 
} 


/*********************************************END OF FILE**********************/
